מה המשמעות של $this
var $name;
function getName($text)
{
$this->name = $text;
}
}
11 תשובות
הכוונה היא שזה בתוך האובייקט הזה זאת אומרת המשתנה name מתוך האובייקט Fruts האובייקט זה הclass.
אז $this זה אומר הclass הזה ואז -> זה מתוך האובייט ואז אצלך כתוב name אז זה משתנה name.
ככה בעצם אתה יכול לפנות למשתנה או לפונקציה מתוך המחלקה עצמה.
ככה בעצם אתה יכול להשתמש לדוגמה במשתנים שהם פרטיים (כלומר שאי אפשר לגשת אליהם ממחלקות אחרות).
ככה החליטו הבונים של PHP, ואולי בגלל שאף פעם
בPHP כשמשתמשים למשל בXML אז יש למשל
זה אף פעם לא עם $.
רק חושב לציין ש this בתוך מחלקה, זו לא המחלקה עצמה, אלה המופע של אותה מחלקה.
$y = new clas();
במקרה הראשון this יהיה האיקס ובמקרה השני ה-Y
ולא, אי אפשר לכתוב את שם הקלאס.
א. כי יכולים להיות הרבה מופעים של אותה מחלקה
ב. כי במקרים מסוימים בתוך המחלקה אתה בכלל לא יודע מה שם המחלקה. למשל אם מדובר בירושה והקוד שלך נמצא בתוך מחלקה האב שממנה יורשים,
בתוך מחלקת האב אתה לא יודע מה שם המחלקה היורשת.
יש עוד מקרים כאלה, כמו traits למשל. אבל כל זה לא משנה שום דבר.
תודה רבה
דרך אגב קראתי עכשיו מאמר שאומר שבגלל שלכל משתנה אפשר לקרuא רק במתודה שהוא הוגד אז שמים this
זה לא מדויק. this לא מאפשר פתאום לקרוא למשתנים מתוך מטודות אחרות.
פשוט יש משתנים שהם חלק ממטודה מסוימת ויש משתנים שהם חלק ממופע מסוים. אל המשתנים ששייכים למופע מסוים אפשר לגשת מתוך כל המטודות. אלו משתנים ששייכים למטודות - אי אפשר לגשת משום מקום חוץ מאותה מטודה. this לא משחק פה שום תפקיד.
this הוא האובייקט שמתוכו מורצת המתודה.